﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TPAgenciaDeTurismo.PruebaWS;
using TPAgenciaDeTurismo.Pantallas;

namespace TPAgenciaDeTurismo.Pantallas
{
    public partial class ServHotel : Form
    {
        public ServHotel()
        {
            InitializeComponent();
        }
        
        PruebaWS.ClientePesadoWSClient metodo = new ClientePesadoWSClient();// instancio el WS
        proveedor prov = new proveedor(); // variable q tiene la instancia del proveedor
        modeloHabitacion[] listaModelos = new modeloHabitacion[0];



        public proveedor recibirProv
        {
            get { return prov; }
            set { prov = value; }
        }// Para cargar  el winform con el proveedor

        private void button1_Click(object sender, EventArgs e)
        {
            habitacion[] habitaciones = new habitacion[dataGridViewHabit.Rows.Count];

            for (int i = 0; i < (dataGridViewHabit.Rows.Count - 1); i++)//Inicio armar array habitaciones
            {
                habitacion habit = new habitacion();
                habit.numero = int.Parse(dataGridViewHabit.Rows[i].Cells[0].Value.ToString());
                habit.numeroSpecified = true;

                foreach (modeloHabitacion item in listaModelos)
                {
                    if (item.nombre == (dataGridViewHabit.Rows[i].Cells[1]).Value.ToString())
                    {
                        habit.tipo = item;
                    }
                }
                habitaciones[i] = habit;
            } //Fin armar arraylistahabitaciones

            //Creo un Hotel servicio
            hotelServicio hotel = new hotelServicio();
            hotel.modelosHabitaciones = listaModelos;
            hotel.habitaciones = habitaciones;
            hotel.nombre = textBox2.Text;

            if (prov.servicios == null)
            {
                prov.servicios = new servicio[1];
                prov.servicios[0] = hotel;
            }
            else
            {
                servicio[] serv = new servicio[prov.servicios.Length + 1];

                for (int i = 0; i < (serv.Length - 1); i++)
                {
                    serv[i] = prov.servicios[i];
                }
                serv[serv.Length - 1] = hotel;
                prov.servicios = serv;
                //Array.Resize(ref prov.servicios, prov.servicios.Length + 1);
                //prov.servicios[prov.servicios.Length - 1] = hotel;
            }

            metodo.editProveedor(prov);
            MessageBox.Show("Servicio de hotel creado correctamente", "Confirmación", MessageBoxButtons.OK);
            this.Close(); 
        }
        private void button2_Click(object sender, EventArgs e)//muestra la habitacion en la tabla
        {// Aclaracion aca toda no esta creado el objeto habitacion 
            dataGridViewHabit.Rows.Add(txtNumServ.Text, comboBox1.SelectedItem.ToString());
            txtNumServ.ResetText();
        }

        private void button3_Click(object sender, EventArgs e)// Crea un modelo de Habitacion
        {
            //Crea una instancia de la Clase ModeloHabitacion
            modeloHabitacion modelo = new modeloHabitacion();//
            modelo.nombre = textBox1.Text;//
            comboBox1.Items.Add(textBox1.Text);//
            modelo.numeroCamas = (int)numericUpDown1.Value;//
            modelo.numeroCamasSpecified = true;//
            modelo.precio = (float)numericUpDown2.Value;//
            modelo.precioSpecified = true;//

            //Cargo el modelo en el arreglo de modelos del servicio hotel
            Array.Resize(ref listaModelos, listaModelos.Length + 1);//
            listaModelos[listaModelos.Length - 1] = modelo;//

            // pone en blanco los textbox para crear el modelo de habitacion
            textBox1.ResetText();
            numericUpDown1.ResetText();
            numericUpDown2.ResetText();
           
         }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }//Crear Modelos


        //private void button1_Click(object sender, EventArgs e)
        //{
        //    if (dataGridView2.Rows.Count == 0)
        //    {
        //        MessageBox.Show("No se puede crear el servicio porq faltan habitaciones", "Ok", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        //    }
        //    else if (dataGridViewHabit.Rows.Count == 0)
        //    {
        //        MessageBox.Show("No se puede crear el servicio porq faltan modelos de habitaciones", "Ok", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        //    }
        //    else
        //    {

        //        //Lista Modelos a Arreglo
        //        modeloHabitacion[] modelos = new modeloHabitacion[dataGridViewHabit.Rows.Count];
        //        int cont = 0;
        //        foreach (modeloHabitacion item in listaModelos)
        //        {
        //            modeloHabitacion unModelo = new modeloHabitacion();
        //            unModelo.nombre = item.nombre;
        //            unModelo.numeroCamas = item.numeroCamas;
        //            unModelo.precio = item.precio;
        //            modelos[cont] = unModelo;
        //            cont = cont + 1;
        //        }

        //        //Lista Habitaciones a Arreglo
        //        habitacion[] habitacioness = new habitacion[dataGridView2.Rows.Count];
        //        int cont1 = 0;
        //        foreach (habitacion item in listaHabitaciones)
        //        {
        //            habitacion unaHabitacion = new habitacion();
        //            unaHabitacion.numero = item.numero;
        //            unaHabitacion.tipo = item.tipo;
        //            habitacioness[cont1] = item;
        //            cont1 = cont1 + 1;
        //        }
        //        //Crear HotelServicio
        //        hotelServicio hotelservicio = new hotelServicio();
        //        hotelservicio.modelosHabitaciones = modelos;
        //        hotelservicio.habitaciones = habitacioness;

        //        //Crear Servicio[]
        //        servicio[] serv;
        //        if (prov.servicios == null)
        //        {
        //            serv = new servicio[1];
        //            serv[0] = hotelservicio;
        //        }
        //        else
        //        {
        //            serv = new servicio[prov.servicios.Length + 1];
        //            for (int i = 0; i < prov.servicios.Length; i++)
        //            {
        //                serv[i] = prov.servicios[i];
        //            }
        //            serv[(serv.Length) - 1] = hotelservicio;
        //        }
        //        dataGridViewHabit.Rows.Clear();
        //        dataGridView2.Rows.Clear();


        //        //Editar y cargar prov
        //        prov.servicios = serv;
        //        PruebaWS.ClientePesadoWSClient met = new ClientePesadoWSClient();
        //        met.editProveedor(prov);

        //        this.Close();

        //    }  

            
 
            
            
        }


    }

